#ifndef TRANSFORMATION_H
#define TRANSFORMATION_H

/*
 *  @autheur : LEMOUEL Florian
 *  @date : 12.04.2013
 *  @version 1.0 : création de la classe complète
 *  @version 1.1 : ajout de la sérialisation
 */

#include "boost/serialization/serialization.hpp"
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>

/*
 * Classe représentant une transformation pour un objet
 * de la scène. Cette classe est abstraite
 */
class Transformation
{
 //--------------------- Constructeurs et destructeur -------------------
public:

    //Destructeur
    virtual ~Transformation();
    //----------------------------------------------------------------------
    //--------------------- Méthodes ---------------------------------------
public:

    //Méthode permettant d'utiliser la transformation
    virtual void utiliser() = 0;
    //----------------------------------------------------------------------
    //--------------------- Accesseurs -------------------------------------

    //----------------------------------------------------------------------
    //--------------------- Surcharge des opérateurs -----------------------

    //----------------------------------------------------------------------
    //--------------------- Attributs --------------------------------------

    //----------------------------------------------------------------------
    //--------------------- Sérialisation ----------------------------------
    template<class Archive>
    void serialize(Archive & ar, const unsigned int version){}
    //----------------------------------------------------------------------
};

BOOST_SERIALIZATION_ASSUME_ABSTRACT( Transformation )

#endif // TRANSFORMATION_H

